﻿using System.Drawing;

namespace XYAC.Framework.MonitorTireMaterialManual.DataExporter
{
    /// <summary>
    /// 表示一个带有偏移量的点数据。
    /// </summary>
    public class PointData
    {
        /// <summary>
        /// 是否有偏移量。
        /// </summary>
        private bool m_IsHaveOffset;

        /// <summary>
        /// 点坐标。
        /// </summary>
        private PointF m_Point;

        /// <summary>
        /// X轴偏移量。
        /// </summary>
        private float m_XOffset;

        /// <summary>
        /// Y轴偏移量。
        /// </summary>
        private float m_YOffset;

        /// <summary>
        /// 第二个Y轴偏移量。
        /// </summary>
        private float m_YOffset2;

        /// <summary>
        /// 是否检查。
        /// </summary>
        protected Boolean m_IsCheck;

        /// <summary>
        /// 是否对称检查。
        /// </summary>
        protected bool m_IsCheckDuiChen;

        /// <summary>
        /// 是否是台阶。
        /// </summary>
        protected bool m_IsTaiJian;

        /// <summary>
        /// 对称厚度公差。
        /// </summary>
        protected float m_TolDuiChenThick;

        /// <summary>
        /// 初始化 PointData 类的新实例。
        /// </summary>
        /// <param name="point">点的坐标。</param>
        public PointData(PointF point)
        {
            this.m_Point = point;
            this.m_IsHaveOffset = false;
            this.m_XOffset = 0f;
            this.m_YOffset = 0f;
        }

        /// <summary>
        /// 初始化 PointData 类的新实例，并指定偏移量。
        /// </summary>
        /// <param name="point">点的坐标。</param>
        /// <param name="xoffset">X轴偏移量。</param>
        /// <param name="yoffset">Y轴偏移量。</param>
        public PointData(PointF point, float xoffset, float yoffset)
        {
            this.m_Point = point;
            this.m_IsHaveOffset = true;
            this.m_XOffset = xoffset;
            this.m_YOffset = yoffset;
        }

        /// <summary>
        /// 获取一个值，指示是否有偏移量。
        /// </summary>
        public bool IsHaveOffset
        {
            get
            {
                return this.m_IsHaveOffset;
            }
        }

        /// <summary>
        /// 获取或设置点的坐标。
        /// </summary>
        public PointF Point
        {
            get
            {
                return this.m_Point;
            }
            set
            {
                m_Point = value;
            }
        }

        /// <summary>
        /// 获取或设置X轴偏移量。
        /// </summary>
        public float XOffset
        {
            get
            {
                return this.m_XOffset;
            }
            set
            {
                m_XOffset = value;
            }
        }

        /// <summary>
        /// 获取或设置Y轴偏移量。
        /// </summary>
        public float YOffset
        {
            get
            {
                return this.m_YOffset;
            }
            set
            {
                m_YOffset = value;
            }
        }

        /// <summary>
        /// 获取或设置第二个Y轴偏移量。
        /// </summary>
        public float YOffset2
        {
            get
            {
                return this.m_YOffset2;
            }
            set
            {
                this.m_YOffset2 = value;
            }
        }
    }

}
